package com.excellent.system.domain;

import com.excellent.common.annotation.Excel;
import com.excellent.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 学生课题对象 sys_task_stu
 *
 * @author excellent
 * @date 2022-05-05
 */
public class SysTaskStu extends BaseEntity implements Comparable<SysTaskStu>
{
    private static final long serialVersionUID = 1L;

    /** 学生课题序号 */
    private Long id;

    /** 学号 */
    @Excel(name = "学号")
    private Long stuId;

    /** 姓名 */
    @Excel(name = "姓名")
    private String stuName;

    /** 班级 */
    @Excel(name = "班级")
    private String stuClass;

    /** 实践环节类型 */
    @Excel(name = "实践环节类型")
    private String taskClass;

    /** 课题名称 */
//    @Excel(name = "课题名称")
    private String taskName;

    /**
     * 课题学期
     */
    private String taskTerm;

    /** 课题状态 */
    private Integer status;

    /**
     * 课题来源
     */
    private Integer taskCome;

    /**
     * 课题类型
     */
    private Integer taskType;

    /**
     * 课题背景
     */
    private String taskBackground;

    /**
     * 设计说明
     */
    private String taskDesign;

    /**
     * 课题技术
     */
    private String taskTech;

    /**
     * 修改意见
     */
    private String taskIdea;

    /** 成绩 */
    @Excel(name = "成绩")
    private Integer score;

    /** 老师工号 */
    private Long teaId;

    /** 指导教师 */
    @Excel(name = "指导教师")
    private String teaName;

    /** 课程代号 */
    private Long taskId;

    /** 成绩状态 */
    private Integer scoreStatus;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setStuId(Long stuId)
    {
        this.stuId = stuId;
    }

    public Long getStuId()
    {
        return stuId;
    }
    public void setStuName(String stuName)
    {
        this.stuName = stuName;
    }

    public String getStuName()
    {
        return stuName;
    }
    public void setStuClass(String stuClass)
    {
        this.stuClass = stuClass;
    }

    public String getStuClass()
    {
        return stuClass;
    }
    public void setTaskClass(String taskClass)
    {
        this.taskClass = taskClass;
    }

    public String getTaskClass()
    {
        return taskClass;
    }
    public void setTaskName(String taskName) {
        this.taskName = taskName;
    }

    public String getTaskName() {
        return taskName;
    }

    public String getTaskTerm() {
        return taskTerm;
    }

    public void setTaskTerm(String taskTerm) {
        this.taskTerm = taskTerm;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public Integer getTaskCome() {
        return taskCome;
    }

    public void setTaskCome(Integer taskCome) {
        this.taskCome = taskCome;
    }

    public Integer getTaskType() {
        return taskType;
    }

    public void setTaskType(Integer taskType) {
        this.taskType = taskType;
    }

    public String getTaskBackground() {
        return taskBackground;
    }

    public void setTaskBackground(String taskBackground) {
        this.taskBackground = taskBackground;
    }

    public String getTaskDesign() {
        return taskDesign;
    }

    public void setTaskDesign(String taskDesign) {
        this.taskDesign = taskDesign;
    }

    public String getTaskTech() {
        return taskTech;
    }

    public void setTaskTech(String taskTech) {
        this.taskTech = taskTech;
    }

    public String getTaskIdea() {
        return taskIdea;
    }

    public void setTaskIdea(String taskIdea) {
        this.taskIdea = taskIdea;
    }
    public void setScore(Integer score)
    {
        this.score = score;
    }

    public Integer getScore()
    {
        return score;
    }
    public void setTeaId(Long teaId)
    {
        this.teaId = teaId;
    }

    public Long getTeaId()
    {
        return teaId;
    }
    public void setTeaName(String teaName)
    {
        this.teaName = teaName;
    }

    public String getTeaName()
    {
        return teaName;
    }
    public void setTaskId(Long taskId)
    {
        this.taskId = taskId;
    }

    public Long getTaskId()
    {
        return taskId;
    }
    public void setScoreStatus(Integer scoreStatus)
    {
        this.scoreStatus = scoreStatus;
    }

    public Integer getScoreStatus() {
        return scoreStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("stuId", getStuId())
                .append("stuName", getStuName())
                .append("stuClass", getStuClass())
                .append("taskClass", getTaskClass())
                .append("taskName", getTaskName())
                .append("taskTerm", getTaskTerm())
                .append("status", getStatus())
                .append("taskCome", getTaskCome())
                .append("taskType", getTaskType())
                .append("taskBackground", getTaskBackground())
                .append("taskDesign", getTaskDesign())
                .append("taskTech", getTaskTech())
                .append("taskIdea", getTaskIdea())
                .append("score", getScore())
                .append("teaId", getTeaId())
                .append("teaName", getTeaName())
                .append("taskId", getTaskId())
                .append("scoreStatus", getScoreStatus())
                .toString();
    }

    @Override
    public int compareTo(SysTaskStu o) {
        if (getTaskClass().compareTo(o.getTaskClass()) == 0) {
            return getStuId().compareTo(o.getStuId());
        }
        return getTaskClass().compareTo(o.getTaskClass());
    }
}
